if, else, এবং case স্টেটমেন্ট
Elm একটি ফাংশনাল প্রোগ্রামিং ভাষা, যেখানে সাধারণ if, else এবং case স্টেটমেন্টগুলি ব্যবহার করে শর্তাধীন লজিক (conditional logic) পরিচালনা করা হয়। এগুলি কোডের বিভিন্ন শাখা এবং সিদ্ধান্ত নেয়ার জন্য ব্যবহৃত হয়। এখানে if, else এবং case স্টেটমেন্টের ব্যাবহার এবং তাদের মধ্যে পার্থক্য তুলে ধরা হলো।
১. if এবং else স্টেটমেন্ট
if এবং else স্টেটমেন্টগুলি সাধারণত শর্তাধীন কোড এক্সিকিউশনের জন্য ব্যবহৃত হয়। যদি কোনো শর্ত সত্য (true) হয়, তাহলে if ব্লকটি এক্সিকিউট হয়, অন্যথায় else ব্লকটি এক্সিকিউট হয়।
Sintax:
if condition then
-- code to execute if condition is true
else
-- code to execute if condition is falseউদাহরণ:
isEven : Int -> String
isEven n =
if n % 2 == 0 then
"Even"
else
"Odd"এখানে isEven ফাংশনটি একটি পূর্ণসংখ্যা নেবে এবং তার উপর শর্ত প্রয়োগ করে চেক করবে যে এটি even না odd। যদি সংখ্যা ২ দিয়ে বিভাজ্য হয় (মানে শর্ত সত্য), তাহলে "Even" রিটার্ন করবে, অন্যথায় "Odd" রিটার্ন করবে।
২. case স্টেটমেন্ট
case স্টেটমেন্টটি সাধারণত pattern matching এর জন্য ব্যবহৃত হয়, যেখানে আপনি একাধিক শর্ত বা ডেটার ধরন অনুসারে ভিন্ন ভিন্ন কোড এক্সিকিউট করতে পারেন। এটি ফাংশনাল ভাষায় বিশেষভাবে শক্তিশালী, কারণ এটি ডেটার বিভিন্ন ধরন অনুযায়ী শর্ত নির্ধারণে সহায়তা করে।
Sintax:
case value of
pattern1 -> result1
pattern2 -> result2
_ -> defaultResultএখানে value হল সেই মান যা case এর মাধ্যমে পরীক্ষিত হবে, এবং প্রতিটি pattern তার সাথে মেলে এমন শর্ত বা ডেটা ধরন।
উদাহরণ:
describeNumber : Int -> String
describeNumber n =
case n of
0 -> "Zero"
1 -> "One"
_ -> "Other"এখানে describeNumber ফাংশনটি একটি পূর্ণসংখ্যা n নেবে এবং তার মানের উপর ভিত্তি করে সঠিক স্ট্রিং রিটার্ন করবে:
- যদি
n০ হয়, তাহলে"Zero"রিটার্ন করবে। - যদি
n১ হয়, তাহলে"One"রিটার্ন করবে। - অন্য যেকোনো সংখ্যার জন্য
"Other"রিটার্ন করবে।
_ হল একটি wildcard যা অন্য সব মানের জন্য ব্যবহার করা হয়।
৩. if এবং case এর মধ্যে পার্থক্য
ifসাধারণত কোনো শর্ত পরীক্ষা করার জন্য ব্যবহৃত হয়, যেমন সংখ্যা মুডুলাস চেক করা বা Boolean ভ্যালু পরীক্ষা করা। এটি সাধারণত একক শর্তের জন্য উপযোগী।caseএকটি ভিন্ন ধরনের শর্ত চেক করার জন্য ব্যবহৃত হয়, যেখানে একাধিক ভিন্ন ভিন্ন শর্ত বা প্যাটার্ন মেলা (pattern matching) করা হয়। এটি ডেটার ধরন বা বিভিন্ন অবস্থা অনুযায়ী কোড এক্সিকিউট করতে সাহায্য করে।
৪. আরও উন্নত উদাহরণ
if ও else উদাহরণ:
checkAge : Int -> String
checkAge age =
if age >= 18 then
"Adult"
else
"Minor"এখানে checkAge ফাংশনটি একজন ব্যক্তির বয়সের উপর ভিত্তি করে বলবে সে Adult নাকি Minor।
case উদাহরণ:
describeShape : Shape -> String
describeShape shape =
case shape of
Circle radius -> "A circle with radius " ++ String.fromInt radius
Rectangle width height -> "A rectangle with width " ++ String.fromInt width ++ " and height " ++ String.fromInt height
_ -> "Unknown shape"এখানে describeShape ফাংশনটি বিভিন্ন ধরনের Shape পরীক্ষা করে:
- যদি
Circleপাওয়া যায়, তাহলে তার রেডিয়াস দেখানো হবে। - যদি
Rectangleপাওয়া যায়, তাহলে তার প্রস্থ এবং উচ্চতা দেখানো হবে। - অন্য যেকোনো ক্ষেত্রে
"Unknown shape"রিটার্ন করবে।
উপসংহার
if, else, এবং case স্টেটমেন্টগুলি Elm এ শর্তাধীন কোড এক্সিকিউশনের জন্য ব্যবহৃত হয়, তবে তাদের ব্যবহার এবং প্রাসঙ্গিকতা কিছুটা আলাদা:
ifসাধারণ শর্তমূলক পরীক্ষা করে একক সিদ্ধান্ত নেয়।caseডেটার ধরন বা প্যাটার্ন অনুযায়ী একাধিক শর্ত পরীক্ষা করে, যা ফাংশনাল প্রোগ্রামিংয়ে খুবই শক্তিশালী।elseসাধারণতifএর অংশ হিসেবে ব্যবহৃত হয়, যখন শর্ত মেলে না তখন অন্য একটি কোড ব্লক এক্সিকিউট করতে।
এগুলি ব্যবহার করে আপনি আপনার কোডে কার্যকরী শর্ত নির্ধারণ করতে পারেন।
Read more